草庐IT

C++: vector 边界

全部标签

c++ - 对 vector 中索引为奇数的数字进行排序

我想对具有奇数索引(索引从0开始)的vector中的数字进行排序。例如,如果我输入这个数字;1657320,程序必须返回:1256370。我的代码#include#includeusingnamespacestd;intmain(){inteded,n,_temp;size_ti;cout>>";cin>>n;vectorv_eded;v_eded.reserve(n);//nqederboshyerayiriramvektor-dacout>eded;v_eded.push_back(eded);}for(i=1;iv_eded[i+2]){_temp=v_eded[i+2];v_e

c++ - vc2013中关于跨dll边界删除指针

来自Doesmsvcrtusesadifferentheapforallocationssince(vs2012/2010/2013),我了解到有可能跨模块边界删除obj甚至使用来自msvc2012或更新版本的MT选项,令人惊讶。但是,在我做了一些测试之后我很困惑(我的平台是win7中的vc2013update4)。我在dll中新建一个obj,并在exe中删除它。当dll和exe都用mt选项编译的时候,看起来确实运行良好。但是,当dll和exe都使用MTd编译时,会出现断言错误'_pfirstblock==phead'。有人能告诉我使用MT/MTd选项编译的模块可以在vs2013中跨模

windows - Sublime Text 3(windows) 中的边界敏感 Ctrl+D

我对maček有相同的要求我在这里借用了maček的例子:我的代码pic1:我选择es的第一个实例并看到这个(使用光标选择)pic2:完美!但是,当我点击ctrl+D几次时,它最终会选择这个pic3:泰兰的回答是Ifyouputyourcursor(caret)onthewordbutnotselectitandthenpressCmd+ditisgoingtoselectlikein2ndimage.相当困惑。在Windows中,在sublime中总是有一个输入光标(一条闪烁的垂直线,可能称为插入符号),无需选择任何类型ctrl+D会选择输入光标附近的字符。无法得到pic2的结果

c++ - 如何在集合元素中重用 vector ?

所以我正在使用我的程序将我的RasperryPi相机流式传输到我的计算机,但是。下面列出的vector给我带来了问题。在大约30秒的流式传输后,它给了我std::bad_alloc。有没有办法在循环中一遍又一遍地重复使用这个vector(例如调整大小、清除)?这是简化的代码:while(isRunning){recv(Connection,received_message,sizeof(received_message),NULL);//receivingthesizeofimageinbytesfileSize=atoi(received_message);std::vectorfi

c++ - 使用 C++/STL 将 std::vector<CString> 展平为 multi_sz 的推荐方法是什么

我想将存储在std::vector中的字符串列表(ATL::CString)写入Windows注册表中的REG_MULTI_SZ值。我知道如何在普通C中执行此操作(迭代一次以获得总长度,分配一个缓冲区,将字符串复制到由“\0”分隔的缓冲区)。知道我使用STL尝试了以下操作(抱歉,我必须将VS2010与“foreach”一起使用):std::vectormultiline_sz;foreach(CStringentryinmyStringList){TCHAR*buf=entry.GetBuffer();multiline_sz.insert(multiline_sz.end(),&bu

windows - 编辑 PASCAL VOC 边界框数据

我正在生成用于训练对象检测ANN的数据。我目前正在根据我正在实现的规则自动生成训练数据(自动捕获图像并创建边界框),但是创建数据的算法不精确(否则我不需要人工智能)我正在寻找输入PascalVoC注释文件和图像的应用程序或github存储库,并允许您直观地修改(添加/删除/更新)边界框以清理数据。当前正在使用Windows。干杯 最佳答案 取决于我使用的平台:Linux/赢-LabelImgmacOS-RectLabel(不幸的是不是开源的,但只需0.99美元) 关于windows-编辑

C++ Vector 给出难以置信的意外值(value)

我有这个代码:std::vectorloc;loc.push_back(cpx);loc.push_back(cpy);loc.push_back(play.GetSize().x);loc.push_back(70);std::cout在我正在制作的游戏中,但即使当我打印loc[2]和loc[3]的值时,它们与它们应该的值完全不同,当我运行这段代码时,我得到loc[3]等于70070而不是70.有人知道如何解决这个问题吗? 最佳答案 你还有一个cout没有endl或\n您忘记删除的代码中的某处。那个打印700,而70是代码示例中最

c++ - 为什么 std::vector::at() 即使启用了优化也需要边界检查?

Windows中的libstdc++-6.dll有问题。这段代码:#include#includeintmain(){std::vectorx(10);std::cout编译很好,但是当我运行它时,我收到一条错误消息说Theprocedureentrypoint_ZSt24__throw_out_of_range_fmtPKczcouldnotbelocatedinthedlllibstdc++-6.dll我的问题是不是如何解决这个问题(这很可能是dll的错误版本,我只需要修复PATH)。然而,这让我意识到了一些意想不到的事情:当我打开优化时,上面的代码运行良好(不管错误的dll),即

c++ - 如何删除 vector 中的元素。 (删除无效)

当我使用“删除”删除vector中的元素时,并没有清除内存。例如,我制作了一个大小为2000的vector。创建后程序使用1,5MB内存。当我执行删除调用时,不会清除任何内容。所有的元素都消失了。但它们仍在内存中。例如:#include#includeusingnamespacestd;intmain(){//Makesavectorof2000itemsvectortest(200000);//Pausefortestpurposesystem("pause");//eraseallelementstest.erase(test.begin(),test.end());//Pause

c++ - 如何调用一个带有多个整数和一个整数 vector 的函数?

问题我正在尝试为一种玩具语言编写解释器,我希望它能够调用位于DLL中的函数。在一些external.dll我有:#includeextern"C"{__declspec(dllexport)voidprint(intval){printf("%i\n",val);}__declspec(dllexport)intadd(inta,intb){returna+b;}...morefunctions**thatIdon'tknowthennamesof**}假设我有一个std::stringfunc;这是DLL中过程的名称,可能是"print"或"add",和一个std::vectorar